package com.paic.mhis.hcpms.quota.calculationreport.kpiinterface.biz.service;

import java.util.List;

import com.paic.mhis.hcpms.quota.calculationreport.kpiinterface.dto.KpiCateDTO;
import com.paic.mhis.hcpms.quota.calculationreport.kpiinterface.dto.KpiConditionDTO;
import com.paic.mhis.hcpms.quota.calculationreport.kpiinterface.dto.KpiDeptDTO;
import com.paic.mhis.hcpms.quota.calculationreport.kpiinterface.dto.KpiDoctorDTO;
import com.paic.mhis.hcpms.quota.calculationreport.kpiinterface.dto.KpiGradeDTO;
import com.paic.mhis.hcpms.quota.calculationreport.kpiinterface.dto.KpiMedicalOrgDTO;
import com.paic.mhis.hcpms.quota.calculationreport.kpiinterface.dto.KpiSociationDTO;

public interface KpiCoreDataService {
	/**
	 * 查询指标数据-统筹区维度
	 * 
	 * @param condition
	 * @return
	 */
	public List<KpiSociationDTO> queryKpiBySoc(KpiConditionDTO condition);
	
	public Object querySingleKpiBySoc(KpiConditionDTO condition);

	/**
	 * 查询指标数据-医院等级维度
	 * 
	 * @param condition
	 * @return
	 */
	public List<KpiGradeDTO> queryKpiByGrade(KpiConditionDTO condition);

	/**
	 * 查询指标数据-医院类型维度
	 * 
	 * @param condition
	 * @return
	 */
	public List<KpiCateDTO> queryKpiByCate(KpiConditionDTO condition);

	/**
	 * 查询指标数据-医院维度
	 * 
	 * @param condition
	 * @return
	 */
	public List<KpiMedicalOrgDTO> queryKpiByOrg(KpiConditionDTO condition);
	
	public Object querySingleKpiByOrg(KpiConditionDTO condition);

	/**
	 * 查询指标数据-科室维度
	 * 
	 * @param condition
	 * @return
	 */
	public List<KpiDeptDTO> queryKpiByDept(KpiConditionDTO condition);

	/**
	 * 查询指标数据-医生维度
	 * 
	 * @param condition
	 * @return
	 */
	public List<KpiDoctorDTO> queryKpiByDoctor(KpiConditionDTO condition);

	/**
	 * 查询指标数据-指标分析器-医院维度
	 * 
	 * @param condition
	 * @return
	 */
	public List<KpiMedicalOrgDTO> queryKpiAnalyzeByOrg(KpiConditionDTO condition) throws Exception;

	/**
	 * 查询指标数据行数-指标分析器-医院维度
	 * 
	 * @param condition
	 * @return
	 */
	public int queryKpiAnalyzeCountByOrg(KpiConditionDTO condition);

	/**
	 * 查询指标数据-指标分析器-科室维度
	 * 
	 * @param condition
	 * @return
	 */
	public List<KpiDeptDTO> queryKpiAnalyzeByDept(KpiConditionDTO condition) throws Exception;

	/**
	 * 查询指标数据行数-指标分析器-科室维度
	 * 
	 * @param condition
	 * @return
	 */
	public int queryKpiAnalyzeCountByDept(KpiConditionDTO condition);

	/**
	 * 查询指标数据-指标分析器-医生维度
	 * 
	 * @param condition
	 * @return
	 */
	public List<KpiDoctorDTO> queryKpiAnalyzeByDoctor(KpiConditionDTO condition) throws Exception;

	/**
	 * 查询指标数据行数-指标分析器-医生维度
	 * 
	 * @param condition
	 * @return
	 */
	public int queryKpiAnalyzeCountByDoctor(KpiConditionDTO condition);

}
